<?php

namespace app\api\controller;

use app\common\controller\Api;

/**
 * 首页接口
 */
class Index extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    /**
     * 首页
     *
     */
    public function index()
    {
        $this->success('请求成功');
    }


    /**
     *猴子大王
     */

    public function monkeys($n = 100, $m = 2)
    {
        $monkeys = range(1, $n);//猴子总数

        $i = 0;

        while (count($monkeys) > 1) {

            if (($i + 1) % $m == 0) {
                unset($monkeys[$i]);

            } else {
                array_push($monkeys, $monkeys[$i]);
                unset($monkeys[$i]);
            }

            $i++;

        }
        $this->success('请求成功', current($monkeys));


    }


    /**
     *
     * 有一母牛，到4岁可生育，每年一头，所生均是一样的母牛，
     * 到15岁绝育，不再能生，20岁死亡，问n年后有多少头牛。
     */


    static function niu($y = 9)
    {
        static $num = 1;                 //定义静态变量;初始化牛的数量为1
        for ($i = 1; $i <= $y; $i++) {
            if ($i >= 4 && $i < 15) {         //每年递增来算，4岁开始+1，15岁不能生育
                $num++;
                self::niu($y - $i);             //递归方法计算小牛$num，小牛生长年数为$y-$i
            } else if ($i == 20) {
                $num--;                          //20岁死亡减一
            }
        }
        return $num;

    }


// 方法1：按照时间推移计算， 嵌套循环
    function countcows($years)
    {
        $cows[] = 0;
        if ($years < 4) return 1;
        for ($i = 4; $i <= $years; $i++) {
            for ($j = 0, $k = count($cows); $j < $k; $j++) {
                $age = $i - $cows[$j];
                if ($age >= 4 && $age < 15) $cows[] = $i;
                else if ($age == 20) unset($cows[$j]);
            }
        }
        return count($cows);
    }



}